1. Field of the Invention
The invention relates to Blu-Ray devices, and in particular, to memory utilization methods for accessing Blu-Ray discs.
2. Description of the Related Art
FIG. 1a is a simplified diagram of a conventional Blu-Ray optical device 100. The Blu-Ray optical device 100 comprises a memory array 120. The memory array 120 serves as a data input/output buffer Blu-Ray optical device 100. A disc driver 110 may comprise PUH related control units for accessing a Blu-Ray disc (not shown). Recording frames #R read from the Blu-Ray disc are obtained by the disc driver 110 and stored in the memory array 120, whereas recording frames #W to be written to the Blu-Ray disc are sent to the disc driver 110 from the memory array 120. According to Blu-Ray standard, data stored in the Blu-Ray disc is protected by a complex and robust error correction scheme. The encoder 130 adds the error correction codes to the input data #IN to generate the recording frames #W. Conversely, recording frames #R read from the Blu-Ray disc are decoded by the decoder 140 to ensure frame data integrity. Thus memory array 120 is a critical resource as it processes the majority of the reading, writing, encoding and decoding operations.
FIG. 1b shows an LDC block conforming to the Blu-Ray standard. An LDC block 160 is a physical cluster unit constructed from original data through a complex encoding process. For example, two data frames of 2052 bytes including 2048 data bytes and 4 bytes EDC, are merged to a data sector of 4104 bytes. With RS codes added, the data sector becomes an ECC sector comprising 19 LDS sequences each having 248 bytes. Thereafter, 16 ECC sectors are merged and interleaved to generate an ECC cluster. With a BIS cluster of 3*496 bytes inserted into the ECC cluster, the LDC block 160 as shown in FIG. 1b is constructed. Conventionally, the LDC block 160 is generated line by line in the memory array 120 from the horizontal perspective (viewpoint of the memory array 120). From the vertical perspective (viewpoint of the Blu-Ray disc), the LDC block 160 is formed by 496 recording frames, each having 155 bytes, in which every 31 recording frames refer to a physical sector. When the recording frames are written to a Blu-Ray disc, the disc driver 110 sequentially reads the recording frames in vertical fashion to perform further modulation and write procedures. Generally speaking, due to the nature of Blu-Ray design, the disc driver 110 processes the LDC block 160 in a direction orthogonal to the processing directions of encoder 130 and decoder 140.
FIG. 2a is a flowchart of a conventional reading procedure. To facilitate the description, the mutually orthogonal directions are named as X and Y respectively. In step 202, the recording frames are read from the disc driver 110 line by line along the X direction. In step 204, the reading process is repeated unless a complete LDC block 160 is formed. In step 206, the decoder 140 decodes the LDC block 160 along the Y direction line by line, and the decoded lines can be immediately output to a host (not shown) such as a computer in step 208. Thus steps 206 and 208 are processed simultaneously as in a pipe line. In step 210, the decoding and outputting are recursively processed until all the lines along the Y direction are output, and the procedure returns to step 202 for the next LDC block.
FIG. 2b is a flowchart of a conventional writing procedure. In step 212, input data #IN is input externally to the memory array 120 line by line along the Y direction. In step 214, the encoder 130 recursively encodes the input data #IN in the memory array 120 line by line along the Y direction. In step 216, it is determined if the encoded input data #IN have formed the LDC block 160. If so, step 218 is processed, recursively writing the recording frames of LDC block 160 into the Blu-Ray disc along the X direction. In step 220, the writing procedure is recursively processed until the LDC block 160 is completely written, and the process returns to step 212 for input of another data #IN.
FIGS. 3a and 3b show memory utilization in reference to FIGS. 2a and 2b. FIG. 3a shows the memory array 120 being written line by line along the X direction. If the X direction represents the memory direction, the arrow 302 represents the externally received input data #IN. Conversely, if the X direction represents the disc direction, the arrow 302 represents a recording frame read from the disc. The shadowed area indicates a written part, whereas the rest indicates an empty part. FIG. 3b shows the successive processes. For example, the arrow 304 may represent a line being encoded or decoded, and the arrow 306 represents an output procedure of recording frame #W or output data #OUT. The occupied memory indicated by arrow 306 is released after output; thus, the entire memory array 120 becomes available for the next filling process, such as step 202 in FIG. 2a or step 212 in FIG. 2b, when all the lines are output by arrow 306. Conventionally, the memory array 120 in Blu-Ray optical device 100 is a critical resource comprising limited capacity. The encoding or decoding indicated by arrow 304 may consume considerable time and become a performance bottleneck. Occupied memory becomes available after the arrow 306 is released, and the empty parts remain idle until the entire memory array 120 is available for the next filling process. Since the memory array 120 is a critical resource, increasing the utilization of memory is desirable.